[アップデート] IAM ロール信頼ポリシーの編集エディタが刷新され IAM Access Analyzer によるポリシー検証と外部アクセスプレビューに対応しました
コンバンハ、千葉(幸)です。
IAM ロール信頼ポリシーのエディタがアップデートされ、IAM Access Analyzer と連携されました。
大まかに以下が変わっています。
- 対話型のポリシーエディタに対応
- ポリシーの検証に対応
- ポリシーの保存前の外部アクセスのプレビューに対応
IAM ポリシー、S3 バケットポリシーなどで対応していた機能が IAM ロール信頼ポリシーにも対応しました。嬉しいですね。
IAM Access Analyzer のおさらい
サービスのリリース当時と比べ、IAM Aceess Analyzer でできることは増えています。整理したのが以下です。
# | 機能 | アナライザー | リリース |
---|---|---|---|
1 | リソースベースポリシーの分析 | 必要 | 2019年12月 |
2 | リソースベースポリシーの事前分析(外部アクセスプレビュー) | 必要 | 2021年3月 |
3 | IAM ポリシーなどのポリシー検証 | 不要 | 2021年3月 |
4 | CloudTrail イベントを基にした IAM ポリシーの生成 | 不要 | 2021年4月 |
今回のアップデートで AWS マネジメントコンソール上で IAM ロールの信頼ポリシーに対し#2
,#3
の機能が使えるようになりました。それぞれの機能がリリースされた当時の内容は以下です。
▼ #2 リソースベースポリシーの事前分析
▼ #3 IAM ポリシーなどのポリシー検証
IAM Access Analyzer の機能は「アナライザー」というコンポーネントを必要とするものとそうでないものに分かれています。今回は#2
の機能も試したいのでアナライザーを作成しておきます。
ただ有効化するだけであれば以下を押下したのち、もうワンクリックするだけです。
新しい信頼ポリシーエディタを試してみる
早速試してみます。ポリシーエディタは以下のいずれでも使用できますが、今回は前者でやってみます。
- 新規の IAM ロール作成時
- 既存の IAM ロールの編集時
新規作成の場合、信頼されたエンティティタイプとして「カスタム信頼ポリシー」を選択することで新しいポリシーエディタが使用できます。
対話型のポリシーエディタ
新しいポリシーエディタでは画面右側で以下を選択できます。
- STS アクションの追加
- プリンシパルの追加
- 条件の追加(オプション)
プリンシパルを追加する場合の例は以下です。プリンシパルタイプを選択するとそれに応じた ARN のフォーマットが表示されるため、設定したい内容に置き換えて追加します。
入力した内容に応じてプリンシパル部に反映されました。同じように条件を追加することもできます。
ポリシーの検証
ポリシーエディタでは上記のように右ペインを利用しても直接エディタ上でも編集ができますが、その内容はほぼリアルタイムで検証されています。
構文誤りがあったりポリシーの内容に適切でない部分があった場合には画面下部に検証結果が表示されます。
ここで検証(チェック)してくれる観点は以下にまとまっています。
今回のアップデートによって信頼ポリシー用のチェック項目も追加されました。確認した範囲では以下が該当しそうです。
分類 | 項目 | 概要 |
---|---|---|
Error | Role trust policy syntax error notprincipal | 信頼ポリシーでNotPrincipalを使用 |
Error | Role trust policy unsupported wildcard in principal | 信頼ポリシーでPrincipalにワイルドカードを指定 |
Error | Role trust policy syntax error resource | 信頼ポリシーでResourceもしくはNotResourceを使用 |
Error | Invalid federated principal syntax in role trust policy | 信頼ポリシーのPrincipalでフェデレーテッドプリンシパルの構文誤り |
General Warning | Policy size exceeds role trust policy quota | 信頼ポリシーのサイズが上限を超えている |
Suggestion | Redundant principal in role trust policy | 信頼ポリシーでroleとassumed-roleの両方を指定 |
上記の6項目はあくまで信頼ポリシー専用(他のポリシーには適用されない)の項目をまとめただけで、信頼ポリシーに適用されるチェック項目がこれだけしかないというわけではありません。
外部アクセスのプレビュー
画面下部の「外部アクセスをプレビュー」を押下することで、プレビューの実行画面が開きます。ここでプレビューを実行するためには「アナライザー」が作成済みである必要があります。
2022/10/4 現在の日本語のコンソールでは「バケット」「バケットポリシー」と表記されていますが、「IAMロール」「信頼ポリシー」と読み替えてください。
「プレビュー」を押下することで、この IAM ロールが「外部」からアクセス可能かどうかがチェックされます。
今回は信頼ポリシーのプリンシパルで別の AWS アカウントの IAM ロールを指定していたため、外部プリンシパルとして検出されました。 *1
ポリシーを保存する前に当該ロールへのアクセス可否を確認できるステップがあるのは嬉しいですね。
終わりに
IAM ロールの信頼ポリシーエディタが刷新され、IAM Access Analyzer と連携されたというアップデートでした。
特にポリシー構文を自動的にチェックしてくれるのは嬉しいですね。プリンシパルとして IAM ロールと IAM ロールセッションの両方を指定するのは冗長で後者は機能しない、というのは気にかけたことがなかったので、そういった部分を指摘してくれるのは助かります。
便利になったエディタを利用してより良い IAM ロールライフをお過ごしください。
以上、 チバユキ (@batchicchi) がお送りしました。
参考
脚注
- これまで説明を省いていましたが、アナライザーでは「信頼できるゾーン」として「自身の AWSアカウント」だけでなく「Organizations組織」も設定できます。今回は AWS アカウントを信頼ゾーンとしているので「外部」イコール「自身の AWS アカウント外」です。信頼ゾーンを Organizations 組織としていた場合、クロスアカウントだが「外部」でない、という状態になり得ます。 ↩